如果 Lisp 如此伟大

#Innolight #Lisp

如果 Lisp 如此伟大,为什么没有更多的人使用它?我在最近的一次演讲中被一个学生问到这个问题。这已经不是第一次有人这么问了。

在语言方面,就像在许多其他事情中一样,流行度和质量之间并没有太多的相关性。为什么约翰·格里沙姆(《诉讼风云》的销售排名为 44)的书比简·奥斯汀(《傲慢与偏见》的销售排名为 6191)卖得更好?即使是格里沙姆,他也会声称这是因为他的写作更好吗?

《傲慢与偏见》的第一句话是:

“凡是有钱的单身男子,总想娶个妻子。”

“凡是有钱的单身男子?”对于爱情故事的第一句话来说,用词太长了。

就像简·奥斯汀一样,Lisp 看起来很难。它的语法,或者说是缺乏语法,让它看起来完全不像大多数人习惯的语言。在我学习 Lisp 之前,我也害怕它。我最近发现了一本 1983 年的笔记本,我在里面写道:

“我想我应该学 Lisp,但它看起来太陌生了。”

幸运的是,我当时只有 19 岁,对学习新事物并不抗拒。我太无知了,以至于学习任何东西都意味着学习新事物。

害怕 Lisp 的人会编出其他理由来解释为什么不用它。在 C 语言是默认语言的时候,标准的借口是 Lisp 太慢了。现在 Lisp 方言已经是可用的较快的语言之一了,这个借口已经消失了。现在标准的借口是公开的循环论证:其他语言更流行。

(要警惕这种推理。它会让你用上Windows。)

流行度总是自我延续的,但在编程语言中尤其如此。为流行语言编写的库更多,这使得它们变得更流行。程序通常需要与其他程序一起工作,如果它们是用同一种语言编写的,那么它们更容易协同工作,所以语言就像病毒一样从程序传播到程序。而且,管理者更喜欢流行语言,因为它们可以更容易地替换开发者。

事实上,如果编程语言都或多或少是等效的,那么除了最流行的之外,使用其他任何语言都几乎没有理由。但它们并不等效,远远不是。这就是为什么不太流行的编程语言,就像简·奥斯汀的小说一样,仍然能够继续存在。当其他人都在阅读最新的约翰·格里沙姆的小说时,总会有一些人在阅读简·奥斯汀的作品。